#ifndef __SYSTEMCALLS__
#define __SYSTEMCALLS__
#include "Kernel.h"
class Kernel;

class SystemCalls
{
	private:
		SystemCalls();
		SystemCalls(Kernel* kernel);
		Kernel* system2;
		static SystemCalls* m_instance1;
	public:
		~SystemCalls();
		static SystemCalls* getInstance();
		static SystemCalls* getInstance(Kernel* kernel);
		void StartOS();
		int Send(int DestinationThreadID, Message* msg);
		Message* Receive(int RecieverID);
		void SendText (int fromNode, int toNode, char* text);
		int CrashNode(int NodeID);
		int ReviveNode(int NodeID);
		void ShowTable(int NodeID);
		bool Deadlock(int id);
		int KillAll();
		double Time();
		double Time(int NodeID);
		int Max_Length();
		int Max_Length(int NodeID);
		int CreateNet(char* Filename);
		int numofmessages(int id);
};

#endif


